package com.zgh.util;//package com.zgh.util;
//
//import java.io.UnsupportedEncodingException;
//import java.util.Date;
//import java.util.Properties;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//import javax.mail.Message;
//import javax.mail.MessagingException;
//import javax.mail.Session;
//import javax.mail.Transport;
//import javax.mail.internet.AddressException;
//import javax.mail.internet.InternetAddress;
//import javax.mail.internet.MimeMessage;
//import javax.mail.internet.MimeUtility;
//
///**
// * 发送邮件工具类
// */
//public class MailUtil {
//	/**
//	 * Message对象将存储我们实际发送的电子邮件信息，
//	 * Message对象被作为一个MimeMessage对象来创建并且需要知道应当选择哪一个JavaMail session
//	 */
//	private MimeMessage message;
//	/**
//	 * Session类代表JavaMail中的一个邮件会话
//	 * 每一个基于JavaMail的应用程序至少有一个Session（可以有任意多的Session）。
//	 * JavaMail需要Properties来创建一个session对象。
//	 * 寻找"mail.smtp.host"    属性值就是发送邮件的主机
//	 * 寻找"mail.smtp.auth"    身份验证，目前免费邮件服务器都需要这一项
//	 */
//	private Session session;
//	/***
//     * 邮件是既可以被发送也可以被受到。JavaMail使用了两个不同的类来完成这两个功能：Transport 和 Store。
//     * Transport 是用来发送信息的，而Store用来收信。
//     */
//	private Transport transport;
//
//	private String mailHost="smtp.qq.com";
//	private String sender_username="392175090@qq.com";
//	private String sender_password="kspdrrqkuebbcaeh";
//	private Properties properties = new Properties();
//
//	public MailUtil(){
//		createMailUtil(false);
//	}
//
//	public MailUtil(boolean debug){
//			createMailUtil(debug);
//	}
//
//	private void createMailUtil(boolean debug){
//		  properties.put("mail.transport.protocol", "smtp");// 连接协议
//		  properties.put("mail.smtp.host", mailHost);// 主机名
//		  properties.put("mail.smtp.port", 465);// 端口号
//		  properties.put("mail.smtp.auth", "true");
//		  properties.put("mail.smtp.ssl.enable", "true");// 设置是否使用ssl安全连接 ---一般都使用
//		  properties.put("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息
//
//		session=Session.getInstance(properties);
//		session.setDebug(debug);//开启后有调试信息
//		message=new MimeMessage(session);
//	}
//
//	/**
//	 * 邮件发送
//	 * @param subject  邮件主题
//	 * @param content  邮件内容
//	 * @param receiver 收件人地址
//	 */
//	public void sendHtmlMail(String subject,String content,String receiver){
//		try {
//			if(!checkEmail(receiver)){
//				throw new RuntimeException("发送邮箱地址不合法,请重新输入!");
//			}
//			//下面这个是设置发送人的Nick name
//			InternetAddress from = new InternetAddress(sender_username);
//			message.setFrom(from);
//		      // 收件人
//            InternetAddress to = new InternetAddress(receiver);
//            message.setRecipient(Message.RecipientType.TO, to);//还可以有CC、BCC
//            // 邮件主题
//            message.setSubject(MimeUtility.encodeText(subject, "UTF-8", "B"));//设置邮件标题防止乱码
//             content = content.toString();
//            // 邮件内容,也可以使纯文本"text/plain"
//            message.setContent(content, "text/html;charset=UTF-8");
//            message.setSentDate(new Date());
//            // 保存邮件
//            message.saveChanges();
//            transport = session.getTransport("smtp");
//            //smtp验证，就是你用来发邮件的邮箱用户名密码
//            transport.connect(mailHost, sender_username, sender_password);
//            // 发送
//            transport.sendMessage(message, message.getAllRecipients());
//		} catch (AddressException e) {
//			throw new RuntimeException(e.getMessage());
//		} catch (UnsupportedEncodingException e) {
//			throw new RuntimeException(e.getMessage());
//		} catch (MessagingException e) {
//			throw new RuntimeException(e.getMessage());
//		}finally{
//			 if(transport!=null){
//	                try {
//	                    transport.close();
//	                } catch (MessagingException e) {
//
//	                }
//	            }
//		}
//	}
//
//	/**
//	 * 邮箱地址合法性校验
//	 */
//	public boolean checkEmail(String email){
//		String check = "^[a-zA-Z0-9_-]+\\@{1}[a-zA-Z0-9_-]+(\\.{1}[a-zA-Z0-9_-]+)+$";
//		Pattern regex = Pattern.compile(check);
//		Matcher matcher = regex.matcher(email);
//		boolean isMatched = matcher.matches();
//		return isMatched;
//	}
//}
